|
1
|
|
|
var gulp = require('gulp'), |
|
2
|
|
|
phpspec = require('gulp-phpspec'), |
|
3
|
|
|
behat = require('gulp-behat'), |
|
4
|
|
|
notify = require('gulp-notify'), |
|
5
|
|
|
path = require('path'), |
|
6
|
|
|
_ = require('lodash'); |
|
7
|
|
|
|
|
8
|
|
|
gulp.task('phpspec', function() { |
|
9
|
|
|
var options = { |
|
10
|
|
|
clear: true, |
|
11
|
|
|
formatter: 'dot', |
|
12
|
|
|
verbose: 'v', |
|
13
|
|
|
notify: true, |
|
14
|
|
|
noInteraction: true |
|
15
|
|
|
}; |
|
16
|
|
|
gulp.src('phpspec.yml') |
|
17
|
|
|
.pipe(phpspec('', options)) |
|
18
|
|
|
.on('error', notify.onError(testNotification('fail', 'phpspec'))) |
|
19
|
|
|
.pipe(notify(testNotification('pass', 'phpspec')));; |
|
20
|
|
|
}); |
|
21
|
|
|
|
|
22
|
|
|
gulp.task('behat', function() { |
|
23
|
|
|
var options = { |
|
24
|
|
|
format: 'progress', |
|
25
|
|
|
notify: true |
|
26
|
|
|
}; |
|
27
|
|
|
gulp.src('behat.yml') |
|
28
|
|
|
.pipe(behat('', options)) |
|
29
|
|
|
.on('error', notify.onError(testNotification('fail', 'behat'))) |
|
30
|
|
|
.pipe(notify(testNotification('pass', 'behat'))); |
|
31
|
|
|
}); |
|
32
|
|
|
|
|
33
|
|
|
gulp.task('watch', function() { |
|
34
|
|
|
gulp.watch(['src/**/*.php', 'spec/**/*.php', 'features/**/*.feature'], ['test']); |
|
35
|
|
|
}); |
|
36
|
|
|
|
|
37
|
|
|
gulp.task('test', ['phpspec', 'behat']); |
|
38
|
|
|
gulp.task('default', ['test', 'watch']); |
|
39
|
|
|
|
|
40
|
|
|
function testNotification(status, pluginName, override) { |
|
41
|
|
|
return _.merge({ |
|
42
|
|
|
title: ( status == 'pass' ) ? 'Tests Passed' : 'Tests Failed', |
|
43
|
|
|
message: ( status == 'pass' ) ? '\n\nAll tests have passed!\n\n' : '\n\nOne or more tests failed...\n\n', |
|
44
|
|
|
icon: path.join(__dirname, 'node_modules/gulp-' + pluginName, 'assets/test-' + status + '.png') |
|
45
|
|
|
}, override);; |
|
46
|
|
|
} |
|
47
|
|
|
|